﻿using SuperMap.Data;
using SuperMap.Realspace;
using System.Windows.Forms;

namespace Ycjw.PipeLine.Map
{
    /****************************************************************************************/
    /*
    功    能:
    作    者: RenZachary
    联系方式: rzcgis@foxmail.com（QQ455745253）
    生成日期: 2021年3月24日
    修改日志: 
    版权说明: @2021 西安云创经纬信息科技有限公司 版权所有 All right reserved.
    注    意: 本内容仅限于云创经纬公司内部使用，禁止用于商业目的。
    */
    /****************************************************************************************/
    public class WorkSpaceEx
    {
        public void Open(Scene scene,string lastPath = "")
        {
            OpenFileDialog dialog = new OpenFileDialog
            {
                Multiselect = true,//该值确定是否可以选择多个文件
                Title = "请选择管线工作空间",
                Filter = "SuperMap 工作空间文件|*.smwu;*.sxwu"
            };
            if (!string.IsNullOrEmpty(lastPath) && System.IO.File.Exists(lastPath))
            {
                Open(lastPath);
                return;
            }
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                string file = dialog.FileName;
                Open(file);
                Commons.SerializeHelper.IniHelper.Write(Commons.SerializeHelper.IniHelper.KEY_LAST_WORKSPACE_PATH,file);
            }

            void Open(string path)
            {
                Workspace ws = new Workspace();
                WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(path);
                ws.Open(workspaceConnectionInfo);
                var sc = ws.Scenes[0];
                scene.Workspace = ws;
                scene.Open(sc);
                scene.Refresh();
            }
        }
        public void Close(Scene scene)
        {
            scene.Close();
            if(scene.Workspace != null)
                scene.Workspace.Close();
        }
    }
}
